草庐IT

JavaScript prototype(原型对象)

全部标签

javascript - 从 native 对象继承

我似乎遗漏了一些关于Javascript中使用native对象的构造函数链继承的信息。例如:functionErrorChild(message){Error.call(this,message);}ErrorChild.prototype=Object.create(Error.prototype);varmyerror=newErrorChild("Help!");为什么myerror.message在这些语句之后被定义为""?我希望Error构造函数将其定义为“帮助!”(并覆盖Error.prototype.message的默认值),就像我在做的那样:varmyerror=new

javascript - 3种不同类型的JavaScript对象,有什么区别?

我最近一直在深入研究JavaScript,并且偶然发现了一个问题。对象的以下实现之间有什么区别:varmyFunction1=(functionmyFunction1(){})();varmyFunction2={}varmyFunction3=functionmyFunction3(){}或者使用执行完全相同任务的三个实现的更长示例。varmyFunction1=(functionmyFunction1(){var_privateVar='Privatevar';this.publicVar='Publicvar';functioninit(newPrivate,newPublic)

javascript - 如何将回调样本转换为延迟对象?

我有一个接受回调函数的函数,我在其中将数据传回。可以将其转换为延迟对象以便更好地练习吗?这是我得到的:varchapters;vargetChapters=function(fnLoad){//CACHEDATAIFAPPLICABLEif(!chapters){//CALLJSONDATAVIAAJAX$.getJSON('/chapters.txt').done(function(json){//STOREDATAINLOCALSTORAGEchapters=Lawnchair(function(){this.save(json,function(data){//CALLCALLB

javascript - 覆盖继承的原型(prototype)方法并在新方法中调用原始方法

在下面的代码中,如何访问B.prototype.log中的A.prototype.log?functionA(){}A.prototype.log=function(){console.log("A");};functionB(){}B.prototype=Object.create(A.prototype);B.prototype.constructor=B;B.prototype.log=function(){//callA.prototype.loghereconsole.log("B");};varb=newB();b.log();我知道我可以只写A.prototype.log

javascript - 使用对象数组创建嵌套列表

我有一组经常更改的SQL数据,我需要定期从中创建一个嵌套的无序列表。我已将SQL数据转换为对象数组,但我仍然坚持从中创建无序列表的逻辑。我试过做一个递归函数,但是我对这些没有足够的经验,所以数据包含这些字段:IDCategoryNameParentID因此,每个类别都有一个ID和一个ParentID(与另一个类别的ID匹配)。根类别都具有相同的虚拟ParentID。javascript对象具有相同的属性。这是一个例子:varCategories=[newCategory(1,'Root',0),newCategory(2,'Cat1',1),newCategory(3,'Cat2',2

javascript - 如何在 JavaScript 中将 JSON 对象字符串化为负零?

如何使用JSON.stringify将负零转换为字符串(-0)?似乎JSON.stringify将负零转换为表示正一的字符串。有好的解决方法吗?varjsn={negative:-0};isNegative(jsn.negative)?document.write("negative"):document.write("positive");varjsonString=JSON.stringify(jsn),anotherJSON=JSON.parse(jsonString);isNegative(anotherJSON.negative)?document.write("negati

javascript - AngularJS - 深层对象的属性删除

我知道如何使用$parse设置对象的“深度”属性服务,如thispost.但是我怎样才能删除深层属性呢?不要用这个将它分配给null:$parse('very.very.deep.property').assign($scope,null);,但实际上是删除它,就像我们在JavaScript中做的那样:delete$scope.very.very.deep.property; 最佳答案 恐怕您正在寻找的东西没有Angular服务/功能。但是您仍然可以实现类似以下内容来满足您的要求:functionCtrl($scope,$parse

Javascript:将方法添加到数组中的所有对象

想象一下下面的代码:$.get("ajax/getColorData.php",function(data){this.colorData=data;});现在设想“data”的值是:this.colorData=[{colorName:'Red',colorIsInRainbow:true},{colorName:'Orange',colorIsInRainbow:true},{colorName:'Magenta',colorIsInRainbow:false}];问题一现在,在我下载数据后,假设我想为数组中的每个条目添加一个方法“colorStartsWithR”。我“认为”与其

javascript - 删除键后调整对象键

这个问题在这里已经有了答案:DeletingarrayelementsinJavaScript-deletevssplice(29个答案)关闭8年前。在Javascript中,我有一个对象数组,如下所示:vararray=[{foo:'bar'},{foo:'baz'},{foo:'qux'}];看起来像这样,真的......[0:{...},1:{...},2:{...}]我删除了第二个:deletearray[1];然后我有这个:[0:{...},2:{...}]我如何调整这个数组,使键按数字顺序恢复?

javascript - 构造函数中的 "use strict"是否扩展到原型(prototype)方法?

我试图弄清楚“usestrict”的定义是否扩展到构造函数的原型(prototype)方法。示例:varMyNamespace=MyNamespace||{};MyNamespace.Page=function(){"usestrict";};MyNamespace.Page.prototype={fetch:function(){//doIneedtouse"usestrict"hereagain?}};根据Mozilla您可以将其用作:functionstrict(){"usestrict";functionnested(){return"AndsoamI!";}return"Hi